package com.easy.controller;

import com.easy.bean.User;
import com.easy.service.UserService;
import com.easy.util.Page;
import com.easy.util.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/*
接收并处理 HTTP 请求；
调用业务层逻辑；
返回结果或视图；
支持跨域请求。
 */
@RestController//它表示该类中的方法返回的对象会被直接作为 HTTP 响应的主体（而不是视图），通常用于构建 RESTful API。
@RequestMapping("user")
/*
注解用于定义 HTTP 请求的映射，允许将 HTTP 请求（如 GET、POST、PUT、DELETE 等）与控制器方法进行关联。通过指定路径（例如 "user"），它可以将请求 URL 路径与方法绑定起来。
当请求路径匹配时，Spring 会将请求路由到该方法或类。
 */
public class UserController {
    @Autowired
    UserService userService;
    @PostMapping
    //@RequestBody：将 HTTP 请求体内容绑定到方法参数，常用于接收 JSON 格式的复杂对象
    public Result add(@RequestBody User user) {
        Object obj = userService.add(user);
        return Result.success("添加信息成功",obj);
    }

    @PutMapping
    public Result edit(@RequestBody User user) {
        Object obj = userService.edit(user);
        return Result.success("编辑信息保存成功",obj);
    }
    @DeleteMapping("{user_id}")
    public Result del(@PathVariable("user_id") Integer id){
        Object obj = userService.del(id);
        return Result.success("删除信息成功",obj);
    }
    @GetMapping("{user_id}")
    public Result one(@PathVariable("user_id") Integer id){
        Object obj = userService.one(id);
        return Result.success(obj);
    }
    @GetMapping("all")
    public Result all(User user){
        Object obj = userService.all(user);
        return Result.success("查询成功",obj);
    }
    @GetMapping("page")
    public Result page(Page page, User user){
        //查询一共有多少条数据
        //查询当前页要显示的数据
        //将以上数据封装到page对象中
        userService.page(page,user);
        System.out.println(page);
        //返回page对象
        return Result.success(page);
    }

}
